vlwkaos' digital garden

realtime 개발

서버리스(BaaS등을 사용) 클라이언트only 개발을 하는 경우

개요

  • realtime 앱 개발시 사용되는 개념을 supabase 기준으로 정리
  • 기타 실시간 데이터 수송신을 하는 경우 비슷한 개념이 있으므로 참고.

channel

  • 실시간으로 데이터를 주고받을 하나의 연결통로를 구성
  • 일반적으로 subscribe 등을 사용하여 특정 id를 가진 채널로 연결한다.

broadcast

  • channel에 연결되어있는 모든 클라이언트에 실시간으로 데이터 전송
  • 서버가 없는 경우 실시간 동기화가 필요한 상태 관리를 해야한다면 해당 채널에 접속한 클라이언트간 로컬 상태를 항상 최신으로 유지해주어야한다.
    • 이 상태는 클라이언트에서는 반드시 단방향으로 흘러야 클라이언트간 싱크를 맞추기 쉬우므로 예기치 않은 상태에 대한 접근을 제어한다.
  • https://github.com/supabase/realtime-js/blob/master/README.md

presence

realtime 개발